package org.example.vo;

import java.util.List;

public class PageVO {
    private List<?> params;
    private String filterName;
    private int page;
    private int count;
    private int start;
    private int length;
    /**
     * 这个就是真正能分页的数目
     */
    private Integer realPage;
    /**
     * 查询到的数据所能分的最大页
     */
    private int total;
    //下面两个是前端页面设计中分页栏需要的数据  就是对 page 和realPage的修改
    private int pageStart;
    private int pageEnd;

    public PageVO() {
    }

    @Override
    public String toString() {
        return "PageVO{" +
                "params=" + params +
                ", filterName='" + filterName + '\'' +
                ", page=" + page +
                ", count=" + count +
                ", start=" + start +
                ", length=" + length +
                ", realPage=" + realPage +
                ", total=" + total +
                ", pageStart=" + pageStart +
                ", pageEnd=" + pageEnd +
                '}';
    }

    public List<?> getParams() {
        return params;
    }

    public void setParams(List<?> params) {
        this.params = params;
    }

    public String getFilterName() {
        return filterName;
    }

    public void setFilterName(String filterName) {
        this.filterName = filterName;
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getStart() {
        return start;
    }

    public void setStart(int start) {
        this.start = start;
    }

    public int getLength() {
        return length;
    }

    public void setLength(int length) {
        this.length = length;
    }

    public Integer getRealPage() {
        return realPage;
    }

    public void setRealPage(Integer realPage) {
        this.realPage = realPage;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public int getPageStart() {
        return pageStart;
    }

    public void setPageStart(int pageStart) {//给的值就是page
        //需要对参数进行修改  为了前端展示
        //我们想前端 分页 一次展示五页  1 2 3 4 5     如果当前页面处于中间时  点击下一页  就变成 2 3 4 5 6  以此类推 3 4 5 6 7
        //前端展示 就需要 当前页面 和 展示的尾页（需要判断是否合理）
        //这里对首页的处理
        if (pageStart<=3){
            pageStart=1;
        }else {
            //当前页面超过了 3  当前页为 4  例如 2 3 4 5 6       7 8 9 10
            //如果小于4 说明已经到数据的尾页
            //这里就不做处理了 脑袋炸裂   如果数据到达尾页  就会出现 不足5个的情况  7 8 9
            pageStart = page - 2;
        }

        this.pageStart = pageStart;

    }

    public int getPageEnd() {
        return pageEnd;
    }

    public void setPageEnd(int pageEnd) {//给的值就是realPage
        if (pageEnd<=5){
            this.pageEnd = pageEnd;
        }else {
            //超过了5页   需要判断一下 当前页面是否为 1 2 3 4 5
            if (page<=3){
                //代表当前页面数据为 1 2 3 4 5 这种
                this.pageEnd=5;
            }else {
                //如果超过了3 当前页面超过了3    2 3 4 5 6
                pageEnd = page+ 2;
                if (pageEnd>realPage){
                    this.pageEnd = realPage;
                }else {
                    this.pageEnd = pageEnd;
                }
            }

        }


    }
}
